package mortal.game.control
{
    import Message.Game.*;
    import flash.events.*;
    import modules.*;
    import mortal.game.cache.*;
    import mortal.game.events.*;
    import mortal.game.mvc.*;
    import mortal.game.resource.info.*;
    import mortal.mvc.core.*;
    import mortal.mvc.interfaces.*;

    public class PetMountsListController extends Controller
    {
        private var currentType:int = 0;

        public function PetMountsListController()
        {
            Dispatcher.addEventListener(EventName.Trade_StatusChange, this.onTradeStatusChange);
            
        }

        override protected function initView() : IView
        {
            if (!_view)
            {
                _view = new PetMountsListModule();
                _view.addEventListener(PetMountsListModule.Event_TypeChange, this.typeChangeHandler);
                _view.addEventListener(Event.ADDED_TO_STAGE, this.initData);
                _view.addEventListener(TradeModule.Event_PetMountListDoubleClick, this.onListDoubleClick);
            }
            return _view;
        }

        private function initData(event:Event) : void
        {
            this.updateListData();
            
        }

        private function onListDoubleClick(event:DataEvent) : void
        {
            GameController.trade.putInPet(event.data);
            
        }

        private function typeChangeHandler(event:DataEvent) : void
        {
            this.currentType = Number(event.data);
            this.updateListData();
            
        }

        private function onTradeStatusChange(event:DataEvent) : void
        {
            this.updateListData();
            
        }

        private function updateListData() : void
        {
            var _loc_3:int = 0;
            var _loc_4:ItemData = null;
            var _loc_5:SPetInfo = null;
            var _loc_1:Array = [];
            var _loc_2:Array = [];
            if (this.currentType == PetMountsListModule.Type_Pet)
            {
                _loc_1 = Cache.instance.pet.petInfos;
                _loc_3 = 0;
                while (_loc_3 < _loc_1.length)
                {
                    
                    _loc_5 = _loc_1[_loc_3] as SPetInfo;
                    if (cache.trade.usedItems[_loc_5.uid] > 0)
                    {
                        _loc_2.push({label:"", itemData:_loc_5, used:true, dragAble:true});
                    }
                    else
                    {
                        _loc_2.push({label:"", itemData:_loc_5, used:false, dragAble:true});
                    }
                    _loc_3++;
                }
            }
            else
            {
                _loc_1 = Cache.instance.pack.mountsPackCache.getAllItems();
                _loc_3 = 0;
                while (_loc_3 < _loc_1.length)
                {
                    
                    if (_loc_1[_loc_3] is ItemData)
                    {
                        _loc_4 = _loc_1[_loc_3];
                        if (cache.trade.usedItems[_loc_4.uid] > 0)
                        {
                            _loc_2.push({label:"", itemData:_loc_1[_loc_3], used:true, dragAble:true});
                        }
                        else
                        {
                            _loc_2.push({label:"", itemData:_loc_1[_loc_3], used:false, dragAble:true});
                        }
                    }
                    _loc_3++;
                }
            }
            _view.update(_loc_2);
            
        }

    }
}
